/*
 * 解释器模式 Interpreter Pattern
 *
 * author: 徐冉辰 2021080908028
 */

#pragma once

#include <string>



/*
 * 抽象表达式
 */
class AbstractExpression
{
public:
    virtual ~AbstractExpression() {}
    virtual void interpret() const = 0;
};

/*
 * 终结符号的基类
 * 完成匹配后移动到下一个
 */
class Terminal : public AbstractExpression
{
public:
};

/*
 * 非终结符号的基类
 */
class NonTerminal : public AbstractExpression
{
public:
};

/*
 * 环境（Context）角色
 */
class Parser
{
private:
};